//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_constantbuffer cb6[49], immediateIndexed
dcl_constantbuffer cb12[21], immediateIndexed
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, mode_default
dcl_sampler s12, mode_default
dcl_sampler s14, mode_comparison
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (uint,uint,uint,uint) t11
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_texturecube (float,float,float,float) t14
dcl_input_ps linear v1.xyw
dcl_output o0.xyzw
dcl_temps 9
div r0.xy, v1.xyxx, v1.wwww
mad r1.xy, r0.xyxx, l(2.000000e+000, -2.000000e+000, 0.000000e+000, 0.000000e+000), l(-1.000000e+000, 1.000000e+000, 0.000000e+000, 0.000000e+000)
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t12.yzxw, s12
mov r1.zw, l(0,0,1.000000,1.000000)
dp3 r2.x, r1.xyzx, cb12[18].xyzx
dp3 r2.y, r1.xyzx, cb12[19].xyzx
dp3 r2.z, r1.xyzx, cb12[20].xyzx
add r0.z, -r0.z, cb12[17].w
add r0.z, r0.z, l(1.000000e+000)
div r0.z, cb12[17].z, r0.z
mad r1.xyz, r2.xyzx, r0.zzzz, cb1[15].xyzx
add r3.xyz, -r1.xyzx, cb12[0].xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
mad_sat r2.w, -r0.w, cb12[4].z, l(1.000000e+000)
add r3.w, l(1.000000e+000), -cb12[7].x
mad r3.w, r3.w, r2.w, cb12[7].x
div r2.w, r2.w, r3.w
dp4 r1.x, r1.xyzw, cb12[6].xyzw
ge r1.x, r1.x, l(0.000000e+000)
and r1.x, r1.x, l(0x3f800000)
mul r1.x, r1.x, r2.w
lt r1.y, r1.x, l(1.000000e-006)
discard_nz r1.y
mul r1.yz, r0.xxyx, cb2[15].xxyx
round_z r1.yz, r1.yyzy
ftoi r4.xy, r1.yzyy
mov r4.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r1.y, r4.xyzw, t11.xyzw
utof r1.y, r1.y
ftoi r1.y, r1.y
and r1.y, r1.y, l(8)
itof r1.y, r1.y
ftou r1.y, r1.y
utof r1.y, r1.y
ge r1.y, r1.y, l(7.900000e+000)
and r1.y, r1.y, l(0x3f800000)
sample_indexable(texture2d)(float,float,float,float) r4.xyz, r0.xyxx, t7.xyzw, s7
mul r4.xyz, r4.xyzx, r4.xyzx
sample_indexable(texture2d)(float,float,float,float) r5.xyz, r0.xyxx, t9.xyzw, s9
mul r1.zw, r5.xxxy, r5.xxxy
sample_indexable(texture2d)(float,float,float,float) r6.xyzw, r0.xyxx, t8.xyzw, s8
mul r5.xyw, r6.wwww, l(9.980469e-001, 7.984375e+000, 0.000000e+000, 6.387500e+001)
frc r5.xyw, r5.xyxw
mad r5.xy, r5.ywyy, l(-1.250000e-001, -1.250000e-001, 0.000000e+000, 0.000000e+000), r5.xyxx
mad r5.xyw, r6.xyxz, l(2.560000e+002, 2.560000e+002, 0.000000e+000, 2.560000e+002), r5.xyxw
add r5.xyw, r5.xyxw, l(-1.280000e+002, -1.280000e+002, 0.000000e+000, -1.280000e+002)
dp3 r0.x, r5.xywx, r5.xywx
rsq r0.x, r0.x
mul r5.xyw, r0.xxxx, r5.xyxw
min r0.x, r1.z, l(1.000000e+000)
mad r0.y, r1.w, l(5.120000e+002), l(-5.000000e+002)
max r0.y, r0.y, l(0.000000e+000)
mad r1.z, r1.w, l(5.120000e+002), -r0.y
mul r0.y, r0.y, l(5.580000e+002)
mad r0.y, r1.z, l(3.000000e+000), r0.y
rsq r0.w, r0.w
mul r6.xyz, r0.wwww, r3.xyzx
dp3 r1.z, r2.xyzx, r2.xyzx
rsq r1.z, r1.z
mul r7.xyz, r1.zzzz, r2.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, -r7.xyzx
dp3 r0.w, r3.xyzx, r3.xyzx
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, r3.xyzx
mad r2.xyz, r2.xyzx, r0.zzzz, cb6[19].xyzx
dp3 r8.x, r2.xyzx, cb6[16].xyzx
dp3 r8.y, r2.xyzx, cb6[17].xyzx
dp3 r8.z, r2.xyzx, cb6[18].xyzx
dp3 r0.z, -r8.xyzx, -r8.xyzx
sqrt r0.z, r0.z
div r2.xyz, -r8.xyzx, r0.zzzz
mul r0.z, r0.z, cb6[18].w
ge r8.xyzw, |r2.zzxx|, |r2.xyyz|
and r1.zw, r8.yyyw, r8.xxxz
movc r0.w, r1.w, |r2.x|, |r2.y|
movc r0.w, r1.z, |r2.z|, r0.w
dp2 r0.w, r0.wwww, cb6[48].zzzz
div r2.xyz, r2.xyzx, r0.wwww
add r8.xyz, r2.xyzx, l(4.500000e-001, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r0.w, r8.xyzx, t14.xxxx, s14, r0.z
add r8.xyz, r2.xyzx, l(7.898243e-001, 4.314830e-001, 4.314830e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(1.350000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(1.184736e+000, 6.472245e-001, 6.472245e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(2.100000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(1.974561e+000, 1.078707e+000, 1.078707e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(2.250000e-001, 3.897114e-001, 3.897114e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(2.123693e-002, 8.997494e-001, 8.997494e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(6.750000e-001, 1.169134e+000, 1.169134e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(3.185539e-002, 1.349624e+000, 1.349624e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(1.050000e+000, 1.818653e+000, 1.818653e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(5.309232e-002, 2.249373e+000, 2.249373e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-2.250000e-001, 3.897114e-001, 3.897114e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-7.685874e-001, 4.682664e-001, 4.682664e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-6.750000e-001, 1.169134e+000, 1.169134e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.152881e+000, 7.023996e-001, 7.023996e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.050000e+000, 1.818653e+000, 1.818653e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.921468e+000, 1.170666e+000, 1.170666e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-4.500000e-001, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-7.898243e-001, -4.314830e-001, -4.314830e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-1.350000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.184736e+000, -6.472245e-001, -6.472245e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-2.100000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.974561e+000, -1.078707e+000, -1.078707e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-2.250000e-001, -3.897114e-001, -3.897114e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-2.123693e-002, -8.997494e-001, -8.997494e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(-6.750000e-001, -1.169134e+000, -1.169134e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-3.185539e-002, -1.349624e+000, -1.349624e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(-1.050000e+000, -1.818653e+000, -1.818653e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(-5.309232e-002, -2.249373e+000, -2.249373e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r8.xyz, r2.xyzx, l(2.250000e-001, -3.897114e-001, -3.897114e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(7.685874e-001, -4.682664e-001, -4.682664e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
add r0.w, r0.w, r1.z
add r8.xyz, r2.xyzx, l(6.750000e-001, -1.169134e+000, -1.169134e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(1.152881e+000, -7.023996e-001, -7.023996e-001, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(9.000000e-001), r0.w
add r8.xyz, r2.xyzx, l(1.050000e+000, -1.818653e+000, -1.818653e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r1.z, r8.xyzx, t14.xxxx, s14, r0.z
mad r0.w, r1.z, l(5.500000e-001), r0.w
add r2.xyz, r2.xyzx, l(1.921468e+000, -1.170666e+000, -1.170666e+000, 0.000000e+000)
sample_c_lz_indexable(texturecube)(float,float,float,float) r0.z, r2.xyzx, t14.xxxx, s14, r0.z
mad r0.z, r0.z, l(5.500000e-001), r0.w
mul r0.w, r1.y, r1.x
mul r1.xyz, cb12[3].wwww, cb12[3].xyzx
dp3_sat r1.w, r5.xywx, r6.xyzx
dp3_sat r2.x, -r7.xyzx, r5.xywx
dp3_sat r2.y, r3.xyzx, r6.xyzx
add r2.xy, -r2.xyxx, l(1.000000e+000, 1.000000e+000, 0.000000e+000, 0.000000e+000)
mul r2.zw, r2.xxxy, r2.xxxy
mul r2.zw, r2.zzzw, r2.zzzw
mul r2.xy, r2.xyxx, r2.zwzz
add r2.z, -r5.z, l(1.000000e+000)
mad r2.xy, r5.zzzz, r2.xyxx, r2.zzzz
add r2.zw, r0.yyyy, l(0.000000e+000, 0.000000e+000, 2.000000e+000, 1.000000e-008)
mul r0.y, r2.z, l(1.250000e-001)
mad r2.x, -r0.x, r2.x, l(1.000000e+000)
dp3 r2.z, r5.xywx, r3.xyzx
add_sat r2.z, r2.z, l(1.000000e-008)
log r2.z, r2.z
mul r2.z, r2.z, r2.w
exp r2.z, r2.z
mul r2.y, r2.y, r2.z
mul r0.y, r0.y, r2.y
mul r0.x, r0.x, r0.y
mul r0.x, r1.w, r0.x
mul r0.y, r1.w, r2.x
mul r0.x, r0.x, cb12[8].z
mad r0.z, r0.z, l(3.401361e-002), l(-1.000000e+000)
mad r0.z, cb12[8].y, r0.z, l(1.000000e+000)
mad r2.xyz, r4.xyzx, r0.yyyy, r0.xxxx
mul r1.xyz, r1.xyzx, r2.xyzx
mul r0.xyw, r0.wwww, r1.xyxz
mul r0.xyz, r0.zzzz, r0.xywx
mul o0.xyz, r0.xyzx, cb2[14].zzzz
mov o0.w, l(1.000000)
ret